From: robertl Date: Tue, 30 Mar 2010 02:21:22 +0000 (+0000) Subject: Add elemin and elemax options to discard filter. X-Git-Tag: archive/raspbian/1.10.0+ds-2+rpi1~1^2~199^2~34 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=b10b51e1995dcf30ed50658432aee4d9408b5d3c;p=gpsbabel.git Add elemin and elemax options to discard filter. --- diff --git a/discard.c b/discard.c index fbb00f156..9e380a2b7 100644 --- a/discard.c +++ b/discard.c @@ -29,9 +29,13 @@ static char *andopt = NULL; static char *satopt = NULL; static char *fixnoneopt = NULL; static char *fixunknownopt = NULL; +static char *eleminopt = NULL; +static char *elemaxopt = NULL; static double hdopf; static double vdopf; static int satpf; +static int eleminpf; +static int elemaxpf; static gpsdata_type what; static route_head *head; @@ -49,6 +53,10 @@ arglist_t fix_args[] = { NULL, ARGTYPE_BOOL, ARG_NOMINMAX}, {"fixunknown", &fixunknownopt, "Suppress waypoints with unknown fix", NULL, ARGTYPE_BOOL, ARG_NOMINMAX}, + {"elemin", &eleminopt, "Suppress waypoints below given elevation in meters", + NULL, ARGTYPE_BEGIN_REQ | ARGTYPE_INT, ARG_NOMINMAX}, + {"elemax", &elemaxopt, "Suppress waypoints above given elevation in meters", + NULL, ARGTYPE_BEGIN_REQ | ARGTYPE_INT, ARG_NOMINMAX}, ARG_TERMINATOR }; @@ -83,6 +91,12 @@ fix_process_wpt(const waypoint *wpt) if ((fixunknownopt) && (waypointp->fix == fix_unknown)) del = 1; + if ((eleminopt) && (waypointp->altitude < eleminpf)) + del = 1; + + if ((elemaxopt) && (waypointp->altitude > elemaxpf)) + del = 1; + if (del) { switch(what) { case wptdata: @@ -142,6 +156,11 @@ fix_init(const char *args) else satpf = -1; + if (eleminopt) + eleminpf = atoi(eleminopt); + + if (elemaxopt) + elemaxpf = atoi(elemaxopt); } filter_vecs_t discard_vecs = { diff --git a/xmldoc/filters/options/discard-elemax.xml b/xmldoc/filters/options/discard-elemax.xml new file mode 100644 index 000000000..abaefd431 --- /dev/null +++ b/xmldoc/filters/options/discard-elemax.xml @@ -0,0 +1,2 @@ +This option drops waypoints with an altitude higher than the specified value (in meters). See elemin for an explanation why this may be useful. + diff --git a/xmldoc/filters/options/discard-elemin.xml b/xmldoc/filters/options/discard-elemin.xml new file mode 100644 index 000000000..1b3fb4c70 --- /dev/null +++ b/xmldoc/filters/options/discard-elemin.xml @@ -0,0 +1,4 @@ +This option drops waypoints with an altitude lower than the specified +value (in meters). Although GPS altitude isn't very accurate, +GPS devices may log faulty waypoints from time to time, such as when +near tall buildings. Elevation values that are way off may signify such waypoints. Use this option to the filter to toss known rogue points.